ec5b557712473fe11b8c8de8c440d02a0873df36,source_gen/jetbrains/mps/baseLanguage/helgins/typeOf_ConceptFunction_InferenceRule.java,typeOf_ConceptFunction_InferenceRule,applyRule,#SNode#,22

Before Change


        TypeChecker.getInstance().getRuntimeSupport().givetype(expectedRetType, argument, "jetbrains.mps.baseLanguage.helgins", "1179436928073");
      } else
      {
        TypeChecker.getInstance().getRuntimeSupport().givetype(leastCommonSupertype, argument, "jetbrains.mps.baseLanguage.helgins", "1179436928081");
      }
    }
  }

After Change


              TypeChecker.getInstance().reportTypeError(returnStatement, "should return value", "jetbrains.mps.baseLanguage.helgins", "1186053304501");
            } else
            {
              TypeChecker.getInstance().getRuntimeSupport().createGreaterThanInequation(TypeChecker.getInstance().getEquationManager().getRepresentator(LCS_typevar_1186052624152), TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(returnStatement, "expression", true)), SLinkOperations.getTarget(returnStatement, "expression", true), null, "jetbrains.mps.baseLanguage.helgins", "1186053304511");
            }
          }
        } finally {
          _zCursor4.release();
        }
      }
      // last expression statement can serve as return statement
      SNode lastStatement = SequenceOperations.getLast(SLinkOperations.getTargets(SLinkOperations.getTarget(argument, "body", true), "statement", true));
      if(SNodeOperations.isInstanceOf(lastStatement, "jetbrains.mps.baseLanguage.structure.ExpressionStatement")) {
        SNode expression = SLinkOperations.getTarget(lastStatement, "expression", true);
        TypeChecker.getInstance().getRuntimeSupport().createGreaterThanInequation(TypeChecker.getInstance().getEquationManager().getRepresentator(LCS_typevar_1186052624152), TypeChecker.getInstance().getRuntimeSupport().typeOf(expression), expression, null, "jetbrains.mps.baseLanguage.helgins", "1186053063874");
        somethingReturned = true;
      }
      if(!(somethingReturned)) {
        String whatExpected = ((expectedRetType == null) ?
          "some value" :
          "" + expectedRetType
        );
        TypeChecker.getInstance().reportTypeError(argument, "function should return " + whatExpected, "jetbrains.mps.baseLanguage.helgins", "1179436928064");
      }
      TypeChecker.getInstance().getRuntimeSupport().createEquation(TypeChecker.getInstance().getRuntimeSupport().typeOf(argument), TypeChecker.getInstance().getEquationManager().getRepresentator(LCS_typevar_1186052624152), argument, null, "jetbrains.mps.baseLanguage.helgins", "1186053174208");
      if((expectedRetType != null)) {
        TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(argument), expectedRetType, argument, null, "jetbrains.mps.baseLanguage.helgins", "1186053540847");
      }